﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Domain;

namespace Simply.BusinessTier.Facade.Interface
{
    public interface IStaticDataService
    {
        #region GetAll
        List<IndustryDO> GetAllIndustries();
        List<StyleDO> GetAllStyles();
        List<ColorThemeDO> GetAllColorThemes();
        List<TagDO> GetAllTags();
        List<DesignGroupDO> GetAllDesignGroups();
        List<PrintMediaTypeDO> GetAllPrintMediaTypes();
        List<FontDO> GetAllFonts();
        #endregion

        int GetProductCountForStyle(int styleId, string productType);
        int GetProductCountForIndustry(int industryId, string productType);
        int GetProductCountForColor(int colorId, string productType);

        List<PrintMethodDO> GetMediaPrintMethods(string mediaCode);
        List<PrintMethodDO> GetPrintMethodsByMediaType(string mediaType);

        List<IndustryDO> GetProductActiveIndustries(string productType);
        List<StyleDO> GetProductActiveStyles(string productType);
        List<TagDO> GetProductActiveTags(string productType);
        List<ColorThemeDO> GetProductActiveColorThemes(string productType);

        PrintMediaDO GetPrintMediaByCode(string mediaCode);

        FontDO GetFontById(int fontId);
        StyleDO GetStyleById(int styleId);
        IndustryDO GetIndustryById(int industryId);

        #region Create
        int CreateStyle(StyleDO style);
        int CreateIndustry(IndustryDO industry);
        int CreateColorTheme(ColorThemeDO colorTheme);
        long CreateTag(TagDO tag);

        void CreatePrintMediaType(PrintMediaTypeDO type);
        long CreateDesignGroup(DesignGroupDO design);
        int CreateFont(FontDO font);
        #endregion
    }
}
